// API记录
import { BusinessEntityAttrRecord } from '@/api/infrastructure/model/businessEntityModal';

export interface APIRecord {
  id?: string; //
  apiName?: string; // api业务命名
  apiPath?: string; // api路径命名
  selectType?: number; // 查询类型:0为业务实体查询，1为sql查询
  dataSourceConfigId?: string; // 数据源id
  extra?: any; // 根据查询类型不同有不同的数据
  creator?: string; // 创建者
  createTime?: string; // 创建时间
  updater?: string; // 更新者
  updateTime?: string; // 更新时间
  updateIp?: string; // 更新ip
  deleted?: string; // 是否删除
  version?: string; // 乐观锁
}

// 分页查询API的参数
export interface APIParams extends Partial<APIRecord> {
  pageNo: number;
  pageSize: number;
  personCode: string;
  // Partial携带具体查询条件
}

// API列表值
export interface APIListRes {
  childrenList: any;
  children: any;
  map(arg0: (item: any) => void): unknown;
  list: APIRecord[];
  total: number;
}

// SQL查询条件
export interface SQLCondition {
  id?: string; //
  defaultCondi?: string; // 默认值
  fieldName?: string; // 数据库表字段名
  jsonName?: string; // 接口查询条件字段
  mutable?: boolean; // 是否可修改
  selectType?: number; // 查询方式：模糊或精确查询 0精确 1模糊
  tableName?: string; // 来源表名
}

// 新增API的参数
export interface APIAddParams extends Partial<APIRecord> {
  extra?: any; // 根据查询类型不同传入不同的数据
}

// 执行API所需的参数
export interface ExecuteAPI {
  order: string; // 排序方式（asc、desc）
  orderField: string; // 排序字段
  pageNo: number; // 页码，不传默认1
  pageSize: number; // 每页条数，不传默认10
  searchParams: any; // 查询条件
}

// API详细信息
export interface APIDetailInfo extends Partial<APIRecord> {
  entityId: string;
  entityAttrs: BusinessEntityAttrRecord[];
  defineSql: string;
  sqlConditions: SQLCondition[];
}
// API详细信息
export interface APIBascCressForm extends Partial<APIRecord> {
  categoryCode: string;
  parentCategoryCode: string;
  parentCategoryName: string;
  procurementClassification: string;
  documentPreparationStatus: string;
  categoryStatus: string;
  categoryName: string;
}
